package com.wanmait.recycle.mapper;

import java.util.List;
import java.util.Set;

import org.apache.ibatis.annotations.Param;

import com.wanmait.recycle.pojo.Article;

public interface ArticleMapper {
    int deleteByPrimaryKey(Integer id);

    int insert(Article record);

    int insertSelective(Article record);

    Article selectByPrimaryKey(Integer id);

    int updateByPrimaryKeySelective(Article record);

    int updateByPrimaryKeyWithBLOBs(Article record);

    int updateByPrimaryKey(Article record);

    //获得所有的文章
	List<Article> findAll();
	//文章上线
	void shangXian(Integer id);
	//文章下线
	void xiaXian(Integer id);
	//多文章上线
	void shangXianByIds(String[] ids);
	//多文章下线
	void xiaXianByIds(String[] ids);
	
	/*前台获得enable为1的所有文章 ZQ 03.04*/
	List<Article> findEnableArticle();
	/*根据Id查看某一篇文章*/
	Article findByArticleId(Integer id);
	/*同步redis,更新点赞数量*/
	void processPraiseCount(Article article);
	/*同步redis,更新收藏数量*/
	void processCollectCount(Article article);
	/*同步redis,更新浏览次数*/
	void processArticleViewCount(Article article);
	/*根据rubbishId查询文章*/
	List<Article> findArticleByRubbishId(Integer rubbishId);
	/*根据用户Id查询用户的文章*/
	List<Article> findArticleByUserinfoId(Integer userinfoId);
	/*添加文章*/
	void addArticle(Article article);
	//老赖版
	List<Article> findArticleByRubbishIdpdz(Integer rubbishId);
	/*文章评论数加1减1*/
	void updateCommentCount(@Param("articleId") Integer articleId,@Param("count") Integer count);
	/*根据用户Id和rubbishId查询文章*/
	List<Article> findArticleByUserinfoIdAndRubbishId(@Param("userinfoId") Integer userinfoId,@Param("rubbishId") Integer rubbishId);
	/*修改文章*/
	void updateArticle(Article article);
	/*删除文章*/
	void deleteArticle(Integer articleId);
	//根据id来找所有的article
	List<Article> findAllByRubbishId(Integer rubbishId);
	//根据热度进行查找
	List<Article> findAllByPageAndRedu();
	//根据时间进行排序查找
	List<Article> findAllByPageAndTime();
	/*获得某个用户所有收藏的文章*/
	List<Article> findCollectArticle(@Param("articleIds") Set<Integer> articleIds);
	
}